package org.itt.cp.pec;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TreeMap;
import org.itt.ap.PECMap;
import org.itt.ap.Source;

public class PEC implements Source {
        // String
        private String ANNO;
        private String CLIENTE;
        private String DIRECTORY;
        private String IDENTIFICATIVO_MSGID;
        private String MAILBOX;
        private String MESE;
        private String MITTENTE;
        private String OGGETTO;
        private String PATH_FILE;
        private String PATH_FILE_FATHER;
        private String RIFMSGID;
        private String TIMEZONE;
        private String TIPO_MESSAGGIO;
        private String TIPO_RICEVUTA;
       
        // Date
        private Date DATA;
        private Date ORA;
       
        // Multi value fields: list of String objects
        private List<String> CONSEGNE;
        private List<String> DESTINATARI;
        private List<String> RICEZIONI;
        private List<String> RISPOSTE;
        private List<String> TIPI_DESTINATARI;
       
        private PECMap map;
       
        // Year
        public String getAnno() {
                return ANNO;
        }
       
        public void setAnno(String ANNO) {
                this.ANNO = ANNO;
        }
       
        // Customer
        public String getCliente() {
                return CLIENTE;
        }

        public void setCliente(String CLIENTE) {
                this.CLIENTE = CLIENTE;
        }
       
        // Directory
        public String getDirectory() {
                return DIRECTORY;
        }

        private void setDirectory(String DIRECTORY) {
                this.DIRECTORY = DIRECTORY;
        }
       
        // Message ID
        public String getIdentificativoMsgId() {
                return IDENTIFICATIVO_MSGID;
        }
       
        public void setIdentificativoMsgId(String IDENTIFICATIVO_MSGID) {
                this.IDENTIFICATIVO_MSGID = IDENTIFICATIVO_MSGID;
        }
       
        // Mailbox
        public String getMailbox() {
                return MAILBOX;
        }
       
        public void setMailbox(String MAILBOX) {
                this.MAILBOX = MAILBOX;
        }
       
        // Month
        public String getMese() {
                return MESE;
        }
       
        public void setMese(String MESE) {
                this.MESE = MESE;
        }
       
        // Sender
        public String getMittente() {
                return MITTENTE;
        }
       
        public void setMittente(String MITTENTE) {
                this.MITTENTE = MITTENTE;
        }
       
        // Object
        public String getOggetto() {
                return OGGETTO;
        }
       
        public void setOggetto(String OGGETTO) {
                this.OGGETTO = OGGETTO;
        }
       
        public List<String> getConsegne() {
                return CONSEGNE;
        }

        public String getData() {
                if(DATA == null) {
                        return "";
                } else {
                        return new SimpleDateFormat("dd/MM/yyyy").format(DATA);
                }
        }

        public List<String> getDestinatari() {
                return DESTINATARI;
        }

        @Override
        public PECMap getPECMap() {
                // TODO Auto-generated method stub
                return map;
        }

        public String getOra() {
                if(ORA == null) {
                        return "";
                } else {
                        return new SimpleDateFormat("HH:mm:ss").format(ORA);
                }
        }

        public String getPathFile() {
                return PATH_FILE;
        }
       
        public String getPathFileFather() {
                return PATH_FILE_FATHER;
        }

        public List<String> getRicezioni() {
                return RICEZIONI;
        }

        public String getRifMsgId() {
                return RIFMSGID;
        }

        public List<String> getRisposte() {
                return RISPOSTE;
        }

        public String getTimezone() {
                return TIMEZONE;
        }

        public List<String> getTipiDestinatari() {
                return TIPI_DESTINATARI;
        }

        public String getTipoMessaggio() {
                return TIPO_MESSAGGIO;
        }

        public String getTipoRicevuta() {
                return TIPO_RICEVUTA;
        }

        public void addConsegna(String element) {
                if(CONSEGNE == null) {
                        CONSEGNE = new ArrayList<String>();
                }
               
                this.CONSEGNE.add(element);
        }

        public void addConsegna(int index, String element) {
                if(CONSEGNE == null) {
                        CONSEGNE = new ArrayList<String>();
                }
               
                this.CONSEGNE.add(index, element);
        }
       
        public void setData(Date DATA) {
                this.DATA = DATA;
        }

        public void addDestinatario(String element) {
                if(DESTINATARI == null) {
                        DESTINATARI = new ArrayList<String>();
                }
               
                this.DESTINATARI.add(element);
        }
       
        public void addDestinatario(int index, String element) {
                if(DESTINATARI == null) {
                        DESTINATARI = new ArrayList<String>();
                }
               
                this.DESTINATARI.add(index, element);
        }

        @Override
        public void setPECMap(PECMap map) {
                // TODO Auto-generated method stub
                this.map = map;
        }

        public void setOra(Date ORA) {
                this.ORA = ORA;
        }

        public void setPathFile(String PATH_FILE) {            
                String[] row = PATH_FILE.split("\\\\");
                if(row.length == 2) {
                        setDirectory(row[0]);
                        this.PATH_FILE = row[1];
                } else {
                        setDirectory("");
                        this.PATH_FILE = row[0];
                }
        }
       
        public void setPathFileFather(String PATH_FILE_FATHER) {
                String[] row = PATH_FILE_FATHER.split("\\\\");
                if(row.length == 2) {
                        setDirectory(row[0]);
                        this.PATH_FILE_FATHER = row[1];
                } else {
                        setDirectory("");
                        this.PATH_FILE_FATHER = row[0];
                }
        }

        public void addRicezione(String element) {
                if(RICEZIONI == null) {
                        RICEZIONI = new ArrayList<String>();
                }
               
                this.RICEZIONI.add(element);
        }
       
        public void addRicezione(int index, String element) {
                if(RICEZIONI == null) {
                        RICEZIONI = new ArrayList<String>();
                }
               
                this.RICEZIONI.add(index, element);
        }

        public void setRifMsgId(String RIFMSGID) {
                this.RIFMSGID = RIFMSGID;
        }

        public void addRisposte(String element) {
                if(RISPOSTE == null) {
                        RISPOSTE = new ArrayList<String>();
                }
               
                this.RISPOSTE.add(element);
        }
       
        public void addRisposte(int index, String element) {
                if(RISPOSTE == null) {
                        RISPOSTE = new ArrayList<String>();
                }
               
                this.RISPOSTE.add(index, element);
        }

        public void setTimezone(String TIMEZONE) {
                this.TIMEZONE = TIMEZONE;
        }

        public void addTipoDestinatario(String element) {
                if(TIPI_DESTINATARI == null) {
                        TIPI_DESTINATARI = new ArrayList<String>();
                }
               
                this.TIPI_DESTINATARI.add(element);
        }
       
        public void addTipoDestinatario(int index, String element) {
                if(TIPI_DESTINATARI == null) {
                        TIPI_DESTINATARI = new ArrayList<String>();
                }
               
                this.TIPI_DESTINATARI.add(index, element);
        }

       
        public void setTipoMessaggio(String TIPO_MESSAGGIO) {
                this.TIPO_MESSAGGIO = TIPO_MESSAGGIO;
        }

        public void setTipoRicevuta(String TIPO_RICEVUTA) {
                this.TIPO_RICEVUTA = TIPO_RICEVUTA;
        }


        @Override
        public TreeMap<Integer, Source> getMap() {
                // TODO Auto-generated method stub
                return null;
        }

		@Override
		public void setMap(TreeMap<Integer, Source> map) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public int compareTo(Object o) {
			// TODO Auto-generated method stub
			return 0;
		}

}

